// 管理员用户信息的获取，更新基本信息，更新密码，更新头像
//导入数据库模块
const db = require('../db/index')
const bcrypt = require('bcryptjs')


// 获取用户的基本信息的处理函数
exports.getUserInfo = (req,res)=>{
    const sqlStr = `select userId,userName,user_pic from userinfo where userId=?`
    // 调用db,query（）执行SQL语句

    db.query(sqlStr,req.user.userId,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length !== 1) return res.cc('获取用户信息失败')

        res.send({
            status:0,
            message:'获取用户信息成功a',
            data:results[0]
        })
    })

}
// 更新用户基本信息的函数
exports.updateUserInfo = (req,res)=>{
    const sqlStr = `update userinfo set ? where userId=?`
    db.query(sqlStr,[req.body,req.body.userId],(err,results)=>{
        if(err) return res.cc(err)
        if(results.affectedRows !== 1) return res.cc('修改用户基本信息失败')
        // 修改用户信息成功
        return res.cc('修改用户基本信息成功！',0)
    })

}
// 更新密码
exports.updatePassword = (req,res)=>{
    // 根据ID查询用户信息
    const sqlStr = `select * from userinfo where userId=?`
   //执行根据id查询用户的信息的SQL语句
    db.query(sqlStr,req.user.userId,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length !== 1) return res.cc('用户不存在')
        // 判断密码是否正确
        const compareResult = bcrypt.compareSync(req.body.oldPwd,results[0].password)
        if(!compareResult) return res.cc('旧密码错误')
        

        // 定义更新密码的sql语句
        const sql = `update userinfo set password=? where userId=?`
        // 对新密码进行加密
        const newPwd = bcrypt.hashSync(req.body.newPwd,10)
        db.query(sql,[newPwd,req.user.userId],(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows !== 1) return res.cc('更新密码失败')
            res.cc('更新密码成功',0)
        })
    }) 

    
}

// 更新用户头像
exports.updateAvatar = (req,res)=>{
    const sqlStr = `update userinfo set user_pic=? where userId=?`
    db.query(sqlStr,[req.body.avatar,req.user.userId],(err,results)=>{
        if(err) return res.cc(err)
        if(results.affectedRows !== 1) return res.cc('更新头像是失败')
        return res.cc('更新头像成功',0)
    })
}